﻿#pragma once

/**
 * 仅使用比特位操作实现整数的加减乘除
 */
class IntegerAddMinusMultiDivide
{
public:
	/**
	 * 对整数取反
	 */
	static int negNum(int num);

	/**
	 * 整数加法,返回a+b
	 *
	 * 不进位相加: a^b
	 * 进位的相加: (a&b)<<1
	 * 两部分相加的结果就是整体相加的结果
	 */
	static int add(int a,int b);

	/**
	 * 整数减法,返回a-b
	 */
	static int minus(int a,int b);

	/**
	 * 整数乘法,返回 a*b
	 */
	static int multi(int a,int b);

	/**
	 * 整数除法，返回 a/b
	 */
	static int div(int a,int b);
};
